package com.lihepeng.leecode.linkedList;

/**
 * 给定一个链表，两两交换其中相邻的节点，并返回交换后的链表。
 * <p>
 * 你不能只是单纯的改变节点内部的值，而是需要实际的进行节点交换。
 */
public class Solution24 {
    // 使用递归完成链表形态转换

    public ListNode swapPairs(ListNode head) {
        ListNode dumpNode = new ListNode(-1);
        dumpNode.next = head;
        ListNode temp = dumpNode;
        while (temp.next != null && temp.next.next != null) {
            ListNode node1 = temp.next;
            ListNode node2 = node1.next;
            temp.next = node2;
            node1.next = node2.next;
            node2.next = node1;
            temp = node1;

        }
        return dumpNode.next;
    }
}
